home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / prog_gen / inter49c.zip / FARCALL.LST next >
File List  |  1996-02-11  |  52KB  |  1,381 lines

  1. FAR CALL Interface List        Release 49        Last Change 2/11/96
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3.  
  4. =============================================
  5. >CALL 0000h:0000h - Sample Entry
  6. >InstallCheck:    how to determine CALL address if variable, whether it is
  7. >      available if address is fixed
  8. >Program: description of the program(s) providing the API
  9. >Note:    any notes related to the API
  10. >SeeAlso: related APIs, and interrupt entries for this API in INTERRUP.*
  11. >
  12. >Call entry point with:
  13. >    input registers
  14. >Return: result registers
  15. >
  16. >Format of data:
  17. >Offset    Size    Description
  18. > 00h    ...    ...
  19. =============================================
  20.  
  21. ----------@00600000--------------------------
  22. CALL 0060h:0000h - Eagle MS-DOS v1.25 IO.SYS - INITIALIZE
  23. InstallCheck:    MS-DOS v1.25 must be installed
  24. Note:    this function should only be called by MSDOS.SYS
  25. SeeAlso: @0060h:0003h,@0060h:0039h
  26. ----------@00600003--------------------------
  27. CALL 0060h:0003h - Eagle MS-DOS v1.25 IO.SYS - CHECK FOR KEYSTROKE
  28. InstallCheck:    MS-DOS v1.25 must be installed
  29. Note:    does not return extended keystrokes
  30. SeeAlso: @0060h:0000h,@0060h:0006h,@0060h:0027h
  31.  
  32. (Table F001)
  33. Call Eagle MS-DOS entry point 0003h with:
  34.     nothing
  35. Return: ZF set if no key
  36.     ZF clear if keystroke available
  37.         AL = keystroke
  38. ----------@00600006--------------------------
  39. CALL 0060h:0006h - Eagle MS-DOS v1.25 IO.SYS - WAIT FOR KEYSTROKE
  40. InstallCheck:    MS-DOS v1.25 must be installed
  41. Notes:    if an extended keystroke is available, only the low byte is returned,
  42.       and this function must be called again to get the high byte
  43.     the BIOS keycode 0000h (Ctrl-Break) is returned as 00h+FFh to avoid
  44.       the ambiguity that might be caused by returning the 00h high byte
  45. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0027h
  46.  
  47. (Table F002)
  48. Call Eagle MS-DOS entry point 0006h with:
  49.     nothing
  50. Return: AL = keystroke
  51.     flags modified
  52. ----------@00600009--------------------------
  53. CALL 0060h:0009h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO SCREEN
  54. InstallCheck:    MS-DOS v1.25 must be installed
  55. Note:    this entry point supports most of the ANSI.SYS control sequences,
  56.       plus several additional escape sequences
  57. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:000Ch
  58.  
  59. (Table F003)
  60. Call Eagle MS-DOS entry point 0009h with:
  61.     AL = character to output
  62. Return: flags modified
  63. ----------@0060000C--------------------------
  64. CALL 0060h:000Ch - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHARACTER TO PRINTER
  65. InstallCheck:    MS-DOS v1.25 must be installed
  66. Note:    this entry point is able, if set by configuration (see @0060h:0039h),
  67.       to strip linefeed characters following carriage returns
  68. SeeAlso: @0060h:0000h,@0060h:0009h
  69.  
  70. (Table F004)
  71. Call Eagle MS-DOS entry point 000Ch with:
  72.     AL = character to be printed
  73. Return: flags modified
  74. ----------@0060000F--------------------------
  75. CALL 0060h:000Fh - Eagle MS-DOS v1.25 IO.SYS - INPUT CHAR FROM AUX: DEVICE
  76. InstallCheck:    MS-DOS v1.25 must be installed
  77. Note:    if the configured AUX: device is a parallel port, this call always
  78.       returns a Ctrl-Z as the "read" character; Ctrl-Z is also returned
  79.       if the user presses Esc or Ctrl-Break while waiting for a character
  80.       to arrive on a serial port
  81. SeeAlso: @0060h:0000h
  82.  
  83. (Table F005)
  84. Call Eagle MS-DOS entry point 000Fh with:
  85.     nothing
  86. Return: AL = received character
  87. ----------@00600012--------------------------
  88. CALL 0060h:0012h - Eagle MS-DOS v1.25 IO.SYS - OUTPUT CHAR TO AUX: DEVICE
  89. InstallCheck:    MS-DOS v1.25 must be installed
  90. Note:    if the port is busy, this function waits until the port becomes
  91.       available or the user presses Esc or Ctrl-Break
  92. SeeAlso: @0060h:0000h
  93.  
  94. (Table F006)
  95. Call Eagle MS-DOS entry point 0012h with:
  96.     AL = character to output
  97. Return: flags modified
  98. ----------@00600015--------------------------
  99. CALL 0060h:0015h - Eagle MS-DOS v1.25 IO.SYS - READ ABSOLUTE SECTOR(S)
  100. InstallCheck:    MS-DOS v1.25 must be installed
  101. SeeAlso: @0060h:0000h,@0060h:0018h,@0060h:001Bh
  102.  
  103. (Table F007)
  104. Call Eagle MS-DOS entry point 0015h with:
  105.     AL = drive table number
  106.     ES:BX -> buffer
  107.     CX = number of sectors to read
  108.     DX = logical sector number of first sector
  109.     AH = verify flag
  110. Return: CF clear if successful
  111.     CF set on error
  112.         AL = error code
  113.         0Ch drive table number out of range
  114. Note:    the drive number in AL is *not* the logical DOS drive number, but
  115.       the number of an internal data table; multiple data tables, each
  116.       describing a distinct disk format, may be shared by one logical
  117.       drive
  118. ----------@00600018--------------------------
  119. CALL 0060h:0018h - Eagle MS-DOS v1.25 IO.SYS - WRITE ABSOLUTE SECTOR(S)
  120. InstallCheck:    MS-DOS v1.25 must be installed
  121. SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:001Bh
  122.  
  123. (Table F008)
  124. Call Eagle MS-DOS entry point 0018h with:
  125.     AL = drive table number
  126.     ES:BX -> data to be written
  127.     CX = number of sectors to write
  128.     DX = logical sector number of first sector
  129.     AH = verify flag
  130. Return: CF clear if successful
  131.     CF set on error
  132.         AL = error code
  133.         0Ch drive table number out of range
  134. Note:    the drive number in AL is *not* the logical DOS drive number, but
  135.       the number of an internal data table; multiple data tables, each
  136.       describing a distinct disk format, may be shared by one logical
  137.       drive
  138. ----------@0060001B--------------------------
  139. CALL 0060h:001Bh - Eagle MS-DOS v1.25 IO.SYS - DETERMINE DISK FORMAT
  140. InstallCheck:    MS-DOS v1.25 must be installed
  141. SeeAlso: @0060h:0000h,@0060h:0015h,@0060h:002Ah
  142.  
  143. (Table F009)
  144. Call Eagle MS-DOS entry point 001Bh with:
  145.     AL = DOS drive number
  146. Return: CF clear if successful
  147.         AL = drive table number
  148.         AH = ??? flag
  149.         00h ???
  150.         FFh ???
  151.     CF set on error
  152.         AL = error code
  153.         02h ???
  154.         0Ch unrecognized format
  155. ----------@0060001E--------------------------
  156. CALL 0060h:001Eh - Eagle MS-DOS v1.25 IO.SYS - SET DAY COUNT
  157. InstallCheck:    MS-DOS v1.25 must be installed
  158. SeeAlso: @0060h:0000h,@0060h:0021h,@0060h:0024h
  159.  
  160. (Table F010)
  161. Call Eagle MS-DOS entry point 001Eh with:
  162.     AX = day count
  163. Return: nothing
  164. ----------@00600021--------------------------
  165. CALL 0060h:0021h - Eagle MS-DOS v1.25 IO.SYS - SET SYSTEM TIME
  166. InstallCheck:    MS-DOS v1.25 must be installed
  167. SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0024h
  168.  
  169. (Table F011)
  170. Call Eagle MS-DOS entry point 0021h with:
  171.     CH = hours
  172.     CL = minutes
  173.     DH = seconds
  174.     DL = hundredths
  175. Return: flags modified
  176. ----------@00600024--------------------------
  177. CALL 0060h:0024h - Eagle MS-DOS v1.25 IO.SYS - READ SYSTEM TIME
  178. InstallCheck:    MS-DOS v1.25 must be installed
  179. SeeAlso: @0060h:0000h,@0060h:001Eh,@0060h:0021h
  180.  
  181. (Table F012)
  182. Call Eagle MS-DOS entry point 0024h with:
  183.     nothing
  184. Return: AX = day count
  185.     CH = hours
  186.     CL = minutes
  187.     DH = seconds
  188.     DL = hundredths
  189. ----------@00600027--------------------------
  190. CALL 0060h:0027h - Eagle MS-DOS v1.25 IO.SYS - CLEAR KEYBOARD BUFFER
  191. InstallCheck:    MS-DOS v1.25 must be installed
  192. SeeAlso: @0060h:0000h,@0060h:0003h,@0060h:0006h
  193.  
  194. (Table F013)
  195. Call Eagle MS-DOS entry point 0027h with:
  196.     nothing
  197. Return: ZF set
  198. ----------@0060002A--------------------------
  199. CALL 0060h:002Ah - Eagle MS-DOS v1.25 IO.SYS - SEARCH FOR NEXT DISK FORMAT
  200. InstallCheck:    MS-DOS v1.25 must be installed
  201. SeeAlso: @0060h:0000h,@0060h:001Bh
  202.  
  203. (Table F014)
  204. Call Eagle MS-DOS entry point 002Ah with:
  205.     AL = drive table number
  206. Return: AL = next drive table number with matching disk sector size and media
  207.           ID byte
  208. ----------@00600039--------------------------
  209. CALL 0060h:0039h - Eagle MS-DOS v1.25 IO.SYS - CONFIGURE FROM SYSINFO.SYS
  210. InstallCheck:    MS-DOS v1.25 must be installed
  211. Note:    reads the first 144 bytes of SYSINFO.SYS from the current drive into
  212.       an internal configuration buffer
  213. SeeAlso: @0060h:0000h
  214. ----------@C0000003--------------------------
  215. CALL C000h:0003h - VIDEO BIOS INITIALIZATION
  216. InstallCheck:    C000h:0000h must contain the word AA55h and the 
  217.           512*BYTE[C000h:0002h] bytes must sum to 00h (mod 256)
  218. Note:    is normally called only by the System ROM BIOS initialization code
  219. ----------@C0000064--------------------------
  220. CALL C000h:0064h U - ATI Mach32 VIDEO BIOS - ???
  221. InstallCheck: ATI Mach32 video board must be installed
  222. SeeAlso: @C000h:0068h"Mach32",@C000h:006Ch,@C000h:0070h
  223.  
  224. (Table F015)
  225. Call ATI Mach32 entry point with:
  226.     AL = function
  227.         00h ???
  228.         01h,02h ???
  229.         11h,12h ???
  230.         21h,22h ???
  231.         41h,42h ???
  232.         81h,82h ???
  233. Return: CF clear if successful
  234.     CF set on error
  235. ----------@C0000064--------------------------
  236. CALL C000h:0064h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (IRET)
  237. InstallCheck: ATI Mach64 video board must be installed
  238. SeeAlso: @C000h:0068h"Mach64",INT 10/AH=A0h"Mach64"
  239. ----------@C0000068--------------------------
  240. CALL C000h:0068h U - ATI Mach32 VIDEO BIOS - ???
  241. InstallCheck: ATI Mach32 video board must be installed
  242. SeeAlso: @C000h:0064h"Mach32",@C000h:006Ch,@C000h:0070h
  243.  
  244. (Table F016)
  245. Call ATI Mach32 entry point with:
  246.     AL = ??? (00h-02h)
  247.     ???
  248. Return: ???
  249. ----------@C0000068--------------------------
  250. CALL C000h:0068h U - ATI Mach64 VIDEO BIOS - ALTERNATE INT 10/AH=A0h (RETF)
  251. InstallCheck: ATI Mach64 video board must be installed
  252. SeeAlso: @C000h:0064h"Mach64",INT 10/AH=A0h"Mach64"
  253. ----------@C000006C--------------------------
  254. CALL C000h:006Ch - ATI Mach32 VIDEO BIOS - 
  255. InstallCheck: ATI Mach32 video board must be installed
  256. SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:0070h
  257.  
  258. (Table F017)
  259. Call ATI Mach32 entry point with:
  260.     AL = function
  261.         00h get ???
  262.         Return: AX = ??? (019Eh)
  263.         01h get ??? information
  264.         ES:BX -> buffer for ??? information (see #F018)
  265.         Return: buffer filled
  266.         02h get ???
  267.         Return: AX = ??? (0250h)
  268.             BX = ??? (0A00h)
  269.             CX = ??? (0200h)
  270.             DX = ??? (0003h)
  271. Return: CF clear if successful
  272.     CF set if invalid function
  273.     all other registers preserved
  274. Note:    officially (Programmer's Reference Guide), interrupts should be
  275.       disabled (CLI) during a function 01h call
  276.  
  277. Format of ATI Mach32 ??? information:
  278. Offset    Size    Description    (Table F018)
  279.  00h    WORD    number of bytes of data returned (0116h for tested BIOS)
  280.  02h  2 BYTEs    ??? (00h 00h and 00h 05h seen)
  281.  04h    WORD    offset of video mode records??? (0028h)
  282.  06h    BYTE    length of one video mode record??? (22h)
  283.  07h    BYTE    ???
  284.  08h    BYTE    ??? (00h/01h, reflects bit 1 of port 36EEh)
  285.  09h    BYTE    ??? (01h)
  286.  0Ah    BYTE    ???
  287.  0Bh    BYTE    memory size
  288.         00h = 256K, 01h = 512K, 02h = 1024K, 03h = 2M, 04h = 4M
  289.  0Ch    BYTE    ???
  290.  0Dh    BYTE    ???
  291.  0Eh    BYTE    ???
  292.  0Fh    BYTE    ??? (bits 6-4 of port 42E8h)
  293.  10h    BYTE    ???
  294.  11h    BYTE    ???
  295.  12h    BYTE    ???
  296.  13h    BYTE    ???
  297.  14h    WORD    ???
  298.  16h    BYTE    ???
  299.  17h    BYTE    ???
  300.  18h    BYTE    ???
  301.  19h 14 BYTEs    unused
  302.  27h    BYTE    scratch byte used by ROM code
  303.  28h 34N BYTEs    ??? video mode records (see #F019)
  304. SeeAlso: #F017
  305.  
  306. Format of ATI Mach32 ??? video mode record:
  307. Offset    Size    Description    (Table F019)
  308.  00h    WORD    horizontal resolution in pixels
  309.  02h    WORD    vertical resolution in pixels
  310.  04h 30 BYTEs    ???
  311. SeeAlso: #F018
  312. ----------@C0000070--------------------------
  313. CALL C000h:0070h U - ATI Mach32 VIDEO BIOS - ???
  314. InstallCheck: ATI Mach32 video board must be installed
  315. SeeAlso: @C000h:0064h,@C000h:0068h,@C000h:006Ch
  316.  
  317. (Table F020)
  318. Call ATI Mach32 entry point with:
  319.     AH = function
  320.         00h ???
  321.         01h ???
  322.         02h ???
  323.         AL = subfunction
  324.             00h ???
  325.             01h ???
  326.         03h ???
  327.         AL = ??? (00h/nonzero)
  328. Return: CF clear if successful
  329.     CF set on error
  330. ----------@F000E739--------------------------
  331. CALL F000h:E739h - ROM BIOS INT 14 HANDLER
  332. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  333. ----------@F000E82E--------------------------
  334. CALL F000h:E82Eh - ROM BIOS INT 16 HANDLER
  335. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  336. ----------@F000EC59--------------------------
  337. CALL F000h:EC59h - ROM BIOS INT 13 HANDLER
  338. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  339. ----------@F000EFD2--------------------------
  340. CALL F000h:EFD2h - ROM BIOS INT 17 HANDLER
  341. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  342. ----------@F000F065--------------------------
  343. CALL F000h:F065h - ROM BIOS INT 10 HANDLER
  344. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  345. ----------@F000F841--------------------------
  346. CALL F000h:F841h - ROM BIOS INT 12 HANDLER
  347. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  348. ----------@F000F84D--------------------------
  349. CALL F000h:F84Dh - ROM BIOS INT 11 HANDLER
  350. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  351. ----------@F000F859--------------------------
  352. CALL F000h:F859h - ROM BIOS INT 15 HANDLER
  353. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  354. ----------@F000FE6E--------------------------
  355. CALL F000h:FE6Eh - ROM BIOS INT 1A HANDLER
  356. InstallCheck:    present if BIOS is 100% compatible with original IBM PC
  357. ----------@F000FFF0--------------------------
  358. CALL F000h:FFF0h - COLD-BOOT ADDRESS
  359. InstallCheck:    always present
  360. SeeAlso: @FFFFh:0000h
  361. ----------@FFFF0000--------------------------
  362. CALL FFFFh:0000h - COLD-BOOT ADDRESS
  363. InstallCheck:    always present
  364. Note:    this address is another way of expressing F000h:FFF0h
  365. SeeAlso: @F000h:FFF0h
  366. ----------@xxxxxxxx--------------------------
  367. CALL xxxxh:xxxxh - 10NET - 10MEMMGR.SYS
  368. InstallCheck:    see INT 21/AX=4402h"10MEMMGR"
  369. SeeAlso: INT 21/AX=4402h"10MEMMGR"
  370. ----------@xxxxxxxx--------------------------
  371. CALL xxxxh:xxxxh - Alternate Multiplex Interrupt Specification TSRs
  372. InstallCheck:    see INT 2D"AMIS"
  373. SeeAlso: INT 2D"AMIS"
  374. ----------@xxxxxxxx--------------------------
  375. CALL xxxxh:xxxxh - AutoCAD Device Interface
  376. InstallCheck:    see INT 7A/AX=0001h
  377. SeeAlso: INT 7A/AX=0001h
  378. ----------@xxxxxxxx---------------------------
  379. CALL xxxxh:xxxxh - BIOS32 Service Directory
  380. InstallCheck:    scan paragraph boundaries E000h to FFFFh for signature string
  381.     "_32_", followed by a valid header structure (see #F021)
  382. Notes:    a 32-bit-code alternate PCI BIOS entry point may be found (if
  383.       supported) by requesting the entry point for the API with
  384.       identifier "$PCI"
  385.     an alternate entry point for INT 1A/AH=B4h may be found (if
  386.       supported) by requesting the entry point for the API with identifier
  387.       "$ACF"
  388. SeeAlso: INT 1A/AX=B100h
  389.  
  390. Format of BIOS32 Service Directory header structure:
  391. Offset    Size    Description    (Table F021)
  392.  00h  4 BYTEs    signature "_32_"
  393.  04h    DWORD    physical address of BSD entry point (see #F022)
  394.  08h    BYTE    header structure version number (currently 00h)
  395.  09h    BYTE    header structure length in paragraphs (currently 01h)
  396.  0Ah    BYTE    checksum (8-bit sum of all bytes in structure, including this
  397.           one, should equal zero)
  398.  0Bh  5 BYTEs    reserved (0)
  399.  
  400. (Table F022)
  401. Call BIOS32 Service Directory entry point with:
  402.     EBX = function
  403.         00000000h get service entry point
  404.         EAX = service identifier
  405.             49435024h ("ICP$") PCI BIOS
  406.             46434124h ("FCA$") Plug-and-Play Auto-Configuration
  407.         Return: AL = status
  408.                 00h successful
  409.                  EBX = base address of handler's code seg
  410.                  ECX = size of code segment
  411.                  EDX = offset of handler in code seg
  412.                 80h unknown service identifier
  413.         else
  414.         Return: AL = 81h invalid function
  415. Notes:    the BSD handler assumes that it is running in a 32-bit code segment
  416.     the returned entry points for PCI BIOS and Auto-Config must be called
  417.       with the same registers as the real-mode INT 1Ah interface,
  418.       including the value B1h or B4h in AH (AMI BIOS v1.00.05.AX1 returns
  419.       the same entry point for both interfaces and uses AH to distinguish
  420.       which API is desired)
  421.     some references indicate that only BL is used for the function number,
  422.       though at least one implementation actually checks the entire EBX
  423.       register; for maximum compatibility, the upper 24 bits of EBX should
  424.       be cleared when calling the entry point
  425. SeeAlso: #F021
  426. ----------@xxxxxxxx--------------------------
  427. CALL xxxxh:xxxxh - Borland TKERNEL
  428. InstallCheck:    see INT 2F/AX=FBA1h/BX=0082h
  429. SeeAlso: INT 2F/AX=FBA1h/BX=0082h
  430. ----------@xxxxxxxx--------------------------
  431. CALL xxxxh:xxxxh - Buffit v3.0
  432. InstallCheck:    see INT 60"Buffit"
  433. SeeAlso: INT 60"Buffit"
  434. ----------@xxxxxxxx--------------------------
  435. CALL xxxxh:xxxxh - CEMM v5.10+ Private API
  436. InstallCheck:    see INT 21/AX=4402h/SF=00h
  437. SeeAlso: INT 21/AX=4402h/SF=00h
  438. ----------@xxxxxxxx--------------------------
  439. CALL xxxxh:xxxxh - Cloaking - PROTECTED-MODE API
  440. InstallCheck:    see INT 2C/AX=001Dh
  441. SeeAlso: INT 2C/AX=001Dh
  442. ----------@xxxxxxxx--------------------------
  443. CALL xxxxh:xxxxh - Cloaking - REAL-MODE API
  444. InstallCheck:    see INT 2F/AX=4310h"Cloaking"
  445. SeeAlso: INT 2F/AX=4310h"Cloaking"
  446. ----------@xxxxxxxx--------------------------
  447. CALL xxxxh:xxxxh - CTMMSYS.SYS - API
  448. InstallCheck:    see INT 21/AX=4402h"CTMMSYS"
  449. Program: CTMMSYS.SYS is the Creative DOS Multimedia Architecture Integration
  450.       driver
  451. SeeAlso: INT 21/AX=4402h"CTMMSYS"
  452. ----------@xxxxxxxx--------------------------
  453. CALL xxxxh:xxxxh - DESQview XDI - Driver API
  454. InstallCheck:    see INT 2F/AX=DE01h
  455. SeeAlso: INT 2F/AX=DE01h
  456. ----------@xxxxxxxx--------------------------
  457. CALL xxxxh:xxxxh - DOS Device Drivers
  458. InstallCheck:    see INT 21/AH=52h
  459. SeeAlso: INT 21/AH=52h
  460. ----------@xxxxxxxx--------------------------
  461. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - MODE SWITCH
  462. InstallCheck:    see INT 2F/AX=1687h
  463. SeeAlso: INT 2F/AX=1687h
  464. ----------@xxxxxxxx--------------------------
  465. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Phar Lap RUN286
  466. InstallCheck:    see INT 2F/AX=168Ah
  467. SeeAlso: INT 2F/AX=168Ah
  468. ----------@xxxxxxxx--------------------------
  469. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Vendor-Specific APIs
  470. InstallCheck:    see INT 31/AX=0A00h
  471. SeeAlso: INT 31/AX=0A00h
  472. ----------@xxxxxxxx--------------------------
  473. CALL xxxxh:xxxxh - DOS Protected-Mode Interface - Windows Support
  474. InstallCheck:    see INT 2F/AX=168Ah
  475. SeeAlso: INT 2F/AX=168Ah
  476. ----------@xxxxxxxx--------------------------
  477. CALL xxxxh:xxxxh - DOS Protected-Mode Services
  478. InstallCheck:    see INT 2F/AX=43E0h
  479. SeeAlso: INT 2F/AX=43E1h
  480. ----------@xxxxxxxx--------------------------
  481. CALL xxxxh:xxxxh - DOS Task Switcher - Callout
  482. InstallCheck:    see INT 2F/AX=4B01h
  483. SeeAlso: INT 2F/AX=4B01h
  484. ----------@xxxxxxxx--------------------------
  485. CALL xxxxh:xxxxh - DOS Task Switcher
  486. InstallCheck:    see INT 2F/AX=4B02h
  487. SeeAlso: INT 2F/AX=4B02h
  488. ----------@xxxxxxxx--------------------------
  489. CALL xxxxh:xxxxh - Enhanced Parallel Port (EPP) BIOS
  490. InstallCheck:    see INT 17/AX=0200h/BX=5050h
  491. SeeAlso: INT 17/AX=0200h/BX=5050h
  492. ----------@xxxxxxxx--------------------------
  493. CALL xxxxh:xxxxh - Extended Memory Specification (XMS)
  494. InstallCheck:    see INT 2F/AX=4300h
  495. SeeAlso: INT 2F/AX=4310h
  496. ----------@xxxxxxxx--------------------------
  497. CALL xxxxh:xxxxh - FASTOPEN
  498. InstallCheck:    see INT 2F/AX=122Ah
  499. SeeAlso: INT 2F/AX=122Ah
  500. ----------@xxxxxxxx--------------------------
  501. CALL xxxxh:xxxxh - HIGHUMM.SYS
  502. InstallCheck:    see INT 21/AX=4402h"HIGHUMM"
  503. SeeAlso: INT 21/AX=4402h"HIGHUMM"
  504. ----------@xxxxxxxx--------------------------
  505. CALL xxxxh:xxxxh - HugeRealMode Driver
  506. InstallCheck:    see INT 78/AX=0000h,INT 78/AX=0001h
  507. SeeAlso: INT 78/AX=0001h
  508. ----------@xxxxxxxx--------------------------
  509. CALL xxxxh:xxxxh - IBM 8514/A Adapter Interface (HDILOAD)
  510. InstallCheck:    see INT 7F/AX=0105h
  511. SeeAlso: INT 7F/AX=0105h
  512. ----------@xxxxxxxx--------------------------
  513. CALL xxxxh:xxxxh - IBM 8516 Touch Screen Device Driver
  514. InstallCheck:    see INT 7F/AX=ABCDh
  515. SeeAlso: INT 7F/AX=ABCDh
  516. ----------@xxxxxxxx--------------------------
  517. CALL xxxxh:xxxxh - IBM System 36/38 Workstation Emulation
  518. InstallCheck:    see INT 0C"SYSTEM 36/38"
  519. SeeAlso: INT 0C"SYSTEM 36/38"
  520. ----------@xxxxxxxx--------------------------
  521. CALL xxxxh:xxxxh - IFS Drivers
  522. InstallCheck:    see INT 21/AH=52h
  523. SeeAlso: INT 21/AH=52h
  524. ----------@xxxxxxxx--------------------------
  525. CALL xxxxh:xxxxh - IFSHLP.SYS
  526. InstallCheck:    see INT 21/AH=3Fh"IFSHLP"
  527. SeeAlso: INT 21/AH=3Fh"IFSHLP"
  528. ----------@xxxxxxxx--------------------------
  529. CALL xxxxh:xxxxh - Interrupt Sharing Protocol
  530. InstallCheck:    see INT 2D"AMIS"
  531. SeeAlso: INT 2D"AMIS"
  532. ----------@xxxxxxxx--------------------------
  533. CALL xxxxh:xxxxh - Intel System Management Bus BIOS
  534. InstallCheck:    see INT 15/AX=53B0h/BH=01h,INT 15/AX=53B0h/BH=02h
  535. SeeAlso: INT 15/AX=53B0h/BH=01h,INT 15/AX=53B0h/BH=05h
  536. ----------@xxxxxxxx--------------------------
  537. CALL xxxxh:xxxxh - INTRSPY v1.0 only
  538. InstallCheck:    see INT 60"INTRSPY"
  539. SeeAlso: INT 60"INTRSPY"
  540. ----------@xxxxxxxx--------------------------
  541. CALL xxxxh:xxxxh - Memory Managers
  542. InstallCheck:    see INT 21/AX=4402h/SF=00h
  543. SeeAlso: INT 21/AX=4402h/SF=00h
  544. ----------@xxxxxxxx--------------------------
  545. CALL xxxxh:xxxxh - Microsoft EMM386.EXE
  546. InstallCheck:    see INT 67/AX=FFA5h
  547. SeeAlso: INT 67/AX=FFA5h
  548. ----------@xxxxxxxx--------------------------
  549. CALL xxxxh:xxxxh - Microsoft Real-Time Compression Interface (MRCI)
  550. InstallCheck:    see INT 1A/AX=B001h
  551. SeeAlso: INT 1A/AX=B001h
  552. ----------@xxxxxxxx--------------------------
  553. CALL xxxxh:xxxxh - Microsoft Workgroup Connection - WORKGRP.SYS
  554. InstallCheck:    see INT 21/AH=3Fh"WORKGRP.SYS"
  555. SeeAlso: INT 21/AX=4402h"WORKGRP.SYS"
  556. ----------@xxxxxxxx--------------------------
  557. CALL xxxxh:xxxxh - MS Windows - DOSMGR Device
  558. InstallCheck:    see INT 2F/AX=1684h/BX=0015h
  559. SeeAlso: INT 2F/AX=1684h/BX=0015h
  560. ----------@xxxxxxxx--------------------------
  561. CALL xxxxh:xxxxh - MS Windows - EDOS Device
  562. InstallCheck:    see INT 2F/AX=1684h/BX=2925h
  563. SeeAlso: INT 2F/AX=1684h/BX=2925h
  564. ----------@xxxxxxxx--------------------------
  565. CALL xxxxh:xxxxh - MS Windows - POSTMSG Device
  566. InstallCheck:    see INT 2F/AX=1684h/BX=8888h
  567. SeeAlso: INT 2F/AX=1684h/BX=8888h
  568. ----------@xxxxxxxx--------------------------
  569. CALL xxxxh:xxxxh - MS Windows - REBOOT Device
  570. InstallCheck:    see INT 2F/AX=1684h/BX=0009h
  571. SeeAlso: INT 2F/AX=1684h/BX=0009h
  572. ----------@xxxxxxxx--------------------------
  573. CALL xxxxh:xxxxh - MS Windows - SHELL Device
  574. InstallCheck:    see INT 2F/AX=1684h/BX=0017h
  575. SeeAlso: INT 2F/AX=1684h/BX=0017h
  576. ----------@xxxxxxxx--------------------------
  577. CALL xxxxh:xxxxh - MS Windows - VADMAD Device
  578. InstallCheck:    see INT 2F/AX=1684h/BX=0444h
  579. SeeAlso: INT 2F/AX=1684h/BX=0444h
  580. ----------@xxxxxxxx--------------------------
  581. CALL xxxxh:xxxxh - MS Windows - VbillD Device
  582. InstallCheck:    see INT 2F/AX=1684h/BX=8888h
  583. SeeAlso: INT 2F/AX=1684h/BX=8888h
  584. ----------@xxxxxxxx--------------------------
  585. CALL xxxxh:xxxxh - MS Windows - VSWITCHD Device
  586. InstallCheck:    see INT 2F/AX=1684h/BX=0750h
  587. SeeAlso: INT 2F/AX=1684h/BX=0750h
  588. ----------@xxxxxxxx--------------------------
  589. CALL xxxxh:xxxxh - MS Windows - VTD Device
  590. InstallCheck:    see INT 2F/AX=1684h/BX=0005h
  591. SeeAlso: INT 2F/AX=1684h/BX=0005h
  592. ----------@xxxxxxxx--------------------------
  593. CALL xxxxh:xxxxh - MS Windows - WPS Device
  594. InstallCheck:    see INT 2F/AX=1684h/BX=310Eh
  595. SeeAlso: INT 2F/AX=1684h/BX=310Eh
  596. ----------@xxxxxxxx--------------------------
  597. CALL xxxxh:xxxxh - Netroom RM386 v6.00
  598. InstallCheck:    see INT 2F/AX=4310h
  599. SeeAlso: INT 2F/AX=4310h
  600. ----------@xxxxxxxx--------------------------
  601. CALL xxxxh:xxxxh - Novell - ODI Link Support Layer
  602. InstallCheck:    see INT 2F/AX=C000h"LSL.COM"
  603. SeeAlso: INT 2F/AX=C000h"LSL.COM"
  604. ----------@xxxxxxxx--------------------------
  605. CALL xxxxh:xxxxh - Novell DOS 7 DELWATCH.EXE
  606. InstallCheck:    see INT 2F/AX=10FEh
  607. SeeAlso: INT 2F/AX=10FEh
  608. ----------@xxxxxxxx--------------------------
  609. CALL xxxxh:xxxxh - Novell DOS 7 EMM386.EXE
  610. InstallCheck:    see INT 2F/AX=12FFh/BX=0106h
  611. SeeAlso: INT 2F/AX=12FFh/BX=0106h
  612. ----------@xxxxxxxx--------------------------
  613. CALL xxxxh:xxxxh - Novell NetWare - Access Server Driver
  614. InstallCheck:    see INT 2F/AX=7AF1h
  615. SeeAlso: INT 2F/AX=7AF1h
  616. ----------@xxxxxxxx--------------------------
  617. CALL xxxxh:xxxxh - Novell NetWare - DOS Requester
  618. InstallCheck:    see INT 2F/AX=7A20h/BX=0000h
  619. SeeAlso: INT 2F/AX=7A20h/BX=0000h
  620. ----------@xxxxxxxx--------------------------
  621. CALL xxxxh:xxxxh - Novell Netware - Event Service Layer
  622. InstallCheck:    see INT 2F/AX=C000h"NESL"
  623. SeeAlso: INT 2F/AX=C000h"NESL"
  624. ----------@xxxxxxxx--------------------------
  625. CALL xxxxh:xxxxh - Novell NetWare - IPX
  626. InstallCheck:    see INT 2F/AX=7A00h
  627. SeeAlso: INT 2F/AX=7A00h
  628. ----------@xxxxxxxx--------------------------
  629. CALL xxxxh:xxxxh - Novell NetWare - IPXODI
  630. InstallCheck:    see INT 2F/AX=7A2Fh
  631. SeeAlso: INT 2F/AX=7A2Fh
  632. ----------@xxxxxxxx--------------------------
  633. CALL xxxxh:xxxxh - Novell NetWare - TCP/IP Protocol Stack
  634. InstallCheck:    see INT 2F/AX=7A40h
  635. SeeAlso: INT 2F/AX=7A40h
  636. ----------@xxxxxxxx--------------------------
  637. CALL xxxxh:xxxxh - Novell NetWare - VLM
  638. InstallCheck:    see INT 2F/AX=7A20h/BX=0000h
  639. SeeAlso: INT 2F/AX=7A20h/BX=0000h
  640. ----------@xxxxxxxx--------------------------
  641. CALL xxxxh:xxxxh - Novell NetWare - VLM CallA
  642. InstallCheck:    see INT 2F/AX=7A20h/BX=0001h
  643. SeeAlso: INT 2F/AX=7A20h/BX=0001h
  644. ----------@xxxxxxxx--------------------------
  645. CALL xxxxh:xxxxh - Novell NetWare - VLM Multicast
  646. InstallCheck:    see INT 2F/AX=7A20h/BX=0004h
  647. SeeAlso: INT 2F/AX=7A20h/BX=0004h
  648. ----------@xxxxxxxx--------------------------
  649. CALL xxxxh:xxxxh - Novell NetWare - VLM Multiplex
  650. InstallCheck:    see INT 2F/AX=7A20h/BX=0002h
  651. SeeAlso: INT 2F/AX=7A20h/BX=0002h
  652. ----------@xxxxxxxx--------------------------
  653. CALL xxxxh:xxxxh - Novell NetWare - VLM Parse API
  654. InstallCheck:    see INT 2F/AX=7A20h/BX=0003h
  655. SeeAlso: INT 2F/AX=7A20h/BX=0003h
  656. ----------@xxxxxxxx--------------------------
  657. CALL xxxxh:xxxxh - Novell NetWare Lite - CLIENT
  658. InstallCheck:    see INT 2F/AX=D800h
  659. SeeAlso: INT 2F/AX=D800h
  660. ----------@xxxxxxxx--------------------------
  661. CALL xxxxh:xxxxh - Novell NetWare Lite - NLCACHE/NWCACHE
  662. InstallCheck:    see INT 2F/AX=D8C0h
  663. SeeAlso: INT 2F/AX=D8C0h
  664. ----------@xxxxxxxx--------------------------
  665. CALL xxxxh:xxxxh - Novell NetWare Lite - SERVER
  666. InstallCheck:    see INT 2F/AX=D880h
  667. SeeAlso: INT 2F/AX=D880h
  668. ----------@xxxxxxxx--------------------------
  669. CALL xxxxh:xxxxh - pcANYWHERE IV/LAN
  670. InstallCheck:    see INT 21/AX=2B44h/BX=4D41h
  671. SeeAlso: INT 21/AX=2B44h/BX=4D41h
  672. ----------@xxxxxxxx--------------------------
  673. CALL xxxxh:xxxxh - PCI BIOS v2.0c Protected-Mode API
  674. InstallCheck:    see INT 1A/AX=B101h
  675. SeeAlso: INT 1A/AX=B101h
  676. ----------@xxxxxxxx--------------------------
  677. CALL xxxxh:xxxxh - PenDOS PENDEV.SYS
  678. InstallCheck:    see INT 21/AX=4402h"PENDEV"
  679. SeeAlso: INT 21/AX=4402h"PENDEV"
  680. ----------@xxxxxxxx--------------------------
  681. CALL xxxxh:xxxxh - Phar Lap 386/DOS-Extender v4.1
  682. InstallCheck:    see INT 2F/AX=ED03h
  683. SeeAlso: INT 2F/AX=ED03h
  684. ----------@xxxxxxxx--------------------------
  685. CALL xxxxh:xxxxh - Plug-and-Play BIOS v1.0A
  686. InstallCheck:    scan paragraph boundaries F000h to FFFFh for signature string
  687.       "$PnP" followed by a valid Plug-and-Play header structure
  688.       (see #F023)
  689. SeeAlso: @xxxxh:xxxxh"BIOS32 Service Directory",INT 1A/AH=B4h
  690.  
  691. Format of Plug-and-Play Installation Structure:
  692. Offset    Size    Description    (Table F023)
  693.  00h  4 BYTEs    signature "$PnP"
  694.  04h    BYTE    Plug-and-Play version (major in high nybble, BCD minor in low)
  695.         10h for current specification
  696.  05h    BYTE    length of Installation Structure in bytes
  697.  06h    WORD    control field
  698.         bits 15-2 reserved
  699.         bits 1-0: event notification mechanism
  700.              00 not supported
  701.              01 polling
  702.              10 asynchronous (interrupt time)
  703.  08h    BYTE    checksum (8-bit sum of all bytes in structure, including this
  704.           one, should equal zero)
  705.  09h    DWORD    physical address of event notification flag if using polling
  706.         (bit 0 set when a system even occurs)
  707.  0Dh    WORD    real mode entry offset (see #F024)
  708.  0Fh    WORD    real mode code segment
  709.  11h    WORD    16-bit protected mode entry point offset (see #F024)
  710.  13h    DWORD    16-bit protected mode code segment base address
  711.  17h    DWORD    OEM device identifier
  712.  1Bh    WORD    real mode data segment
  713.  1Dh    DWORD    16-bit protected mode data segment base address
  714.  
  715. (Table F024)
  716. Call Plug-and-Play BIOS entry point with:
  717.     STACK:    WORD    function number
  718.             0000h Get Number of System Device Nodes (see #F025)
  719.             0001h Get System Device Node (see #F026)
  720.             0002h Set System Device Node (see #F027)
  721.             0003h Get Event (see #F028)
  722.             0004h Send Message (see #F030)
  723.             0005h Get Docking Station Information (see #F032)
  724.             0006h reserved for future versions
  725.             0007h Select Primary Boot Devices (see #F033)
  726.             0008h Get Primary Boot Devices (see #F034)
  727.             0009h Set Statically Allocated Resource Information
  728.                   (see #F036)
  729.             000Ah Get Statically Allocated Resource Information
  730.                   (see #F037)
  731.             000Bh Get APM ID Table (see #F038)
  732.             0040h Get Plug-and-Play ISA Configuration Structure
  733.                   (see #F040)
  734.             0041h Get Extended System Configuration Data Info
  735.                   (see #F042)
  736.             0042h Read Extended SYstem Configuration Data
  737.                   (see #F043)
  738.             0043h Write Extended SYstem Configuration Data
  739.                   (see #F044)
  740.             ---BIOS Boot Specification---
  741.             0060h Get Version and Installation Check (see #F045)
  742.             0061h Get IPL Device Count (see #F046)
  743.             0062h Get Boot Priority and IPL Table (see #F047)
  744.             0063h Set Boot Priority (see #F048)
  745.             0064h Get IPL Device from Last Boot (see #F049)
  746.             0065h Get Boot First (see #F050)
  747.             0066h Set Boot First (see #F051)
  748.             0067h-006Fh reserved
  749.         var    function arguments
  750.         WORD    PnP BIOS writable segment/selector
  751. Return: AX = status (see #F052)
  752. Notes:    the caller must provide at least 1024 bytes of stack space for use by
  753.       the Plug-and-Play BIOS
  754.     this API is bi-modal; all calls are available in both real mode and
  755.       16-bit protected mode (if calling from 32-bit protected mode, care
  756.       must be taken to ensure proper alignment of the stack arguments)
  757. SeeAlso: #F023
  758.  
  759. (Table F025)
  760. Call Plug-and-Play BIOS function 00h with:
  761.     STACK:    WORD    0000h (function "Get Number of System Device Nodes")
  762.         DWORD    -> BYTE in which to return number of device nodes
  763.         DWORD    -> WORD in which to return size of largest device node
  764.         WORD    PnP BIOS writable segment/selector
  765. Return: AX = status (see #F052)
  766. Note:    the large-model C declaration is
  767.       int (*entry)(int, unsigned char *, unsigned int *, unsigned int);
  768.  
  769. (Table F026)
  770. Call Plug-and-Play BIOS function 01h with:
  771.     STACK:    WORD    0001h (function "Get System Device Node")
  772.         DWORD    -> BYTE containing node number or handle
  773.         DWORD    -> buffer for device node
  774.         WORD    control flag
  775.             bits 15-2 reserved (0)
  776.             bit 1: get static config (values for next boot)
  777.             bit 0: get current (dynamic) configuration
  778.         WORD    PnP BIOS writable segment/selector
  779. Return: AX = status (see #F052)
  780. Notes:    the large-model C declaration is
  781.       int (*entry)(int, unsigned char *, DEV_NODE *, unsigned int,
  782.         unsigned int);
  783.     exactly one of the two defined bits in the control flag must be set
  784.  
  785. (Table F027)
  786. Call Plug-and-Play BIOS function 02h with:
  787.     STACK:    WORD    0002h (function "Set System Device Node")
  788.         DWORD    -> BYTE containing node number or handle
  789.         DWORD    -> buffer containing device node
  790.         WORD    control flag
  791.             bits 15-2 reserved (0)
  792.             bit 1: set static config (values for next boot)
  793.             bit 0: set current (dynamic) configuration
  794.         WORD    PnP BIOS writable segment/selector
  795. Return: AX = status (see #F052)
  796. Notes:    the large-model C declaration is
  797.       int (*entry)(int, unsigned char *, DEV_NODE *, unsigned int,
  798.         unsigned int);
  799.     exactly one of the two defined bits in the control flag must be set
  800.  
  801. (Table F028)
  802. Call Plug-and-Play BIOS function 03h with:
  803.     STACK:    WORD    0003h (function "Get Event")
  804.         DWORD    -> WORD buffer for event message identifier (see #F029)
  805.         WORD    PnP BIOS writable segment/selector
  806. Return: AX = status (see #F052)
  807. Note:    the large-model C declaration is
  808.       int (*entry)(int, unsigned int *, unsigned int);
  809.  
  810. (Table F029)
  811. Values for PnP Event Identifier:
  812.  0001h    "ABOUT_TO_CHANGE_CONFIG" preliminary notification of changes, including
  813.       docking and undocking
  814.  0002h    "DOCK_CHANGED" devices have been added to or removed from system
  815.  0003h    "SYSTEM_DEVICE_CHANGED" removable system devices have been inserted
  816.       or removed
  817.  0004h    "CONFIG_CHANGE_FAILED" error detected while atempting to add or remove
  818.       devices
  819.  8000h-FFFEh OEM-defined events
  820.  FFFFh    "UNKNOWN_SYSTEM_EVENT"
  821.  
  822. (Table F030)
  823. Call Plug-and-Play BIOS function 04h with:
  824.     STACK:    WORD    0004h (function "Send Message")
  825.         WORD    message identifier (see #F031)
  826.         WORD    PnP BIOS writable segment/selector
  827. Return: AX = status (see #F052)
  828. Note:    the large-model C declaration is
  829.       int (*entry)(int, unsigned int, unsigned int);
  830. SeeAlso: #F030,#F032
  831.  
  832. (Table F031)
  833. Values for PnP Message Identifier:
  834.  0000h    "OK"
  835.  0001h    "ABORT" action which caused an ABOUT_TO_X message
  836.  0002h-003Fh reserved for future Response Messages
  837.  0040h    "UNDOCK_DEFAULT_ACTION"
  838.  0041h    "POWER_OFF"
  839.  0042h    "PNP_OS_ACTIVE"
  840.  0043h    "PNP_OS_INACTIVE"
  841.  0044h-007Fh reserved for future Control Messages
  842.  8000h-FFFFh OEM-defined messages
  843.  
  844. (Table F032)
  845. Call Plug-and-Play BIOS function 05h with:
  846.     STACK:    WORD    0005h (function "Get Docking Station Information")
  847.         DWORD    -> buffer for docking station info (see #F035)
  848.         WORD    PnP BIOS writable segment/selector
  849. Return: AX = status (see #F052)
  850. Note:    the large-model C declaration is
  851.       int (*entry)(int, unsigned char *, unsigned int);
  852. SeeAlso: #F030,#F033
  853.  
  854. (Table F033)
  855. Call Plug-and-Play BIOS function 07h with:
  856.     STACK:    WORD    0007h (function "Select Primary Boot Devices")
  857.         WORD    type of primary boot device
  858.             0000h primary input
  859.             0001h primary output
  860.             0002h primary IPL
  861.         DWORD    Plug-and-Play 32-bit device ID or FFFFFFFFh for ISA
  862.         DWORD    device serial number or FFFFFFFFh
  863.         DWORD    32-bit logical device ID or FFFFFFFFh for ISA device
  864.         WORD    physical unit number
  865.         WORD    control flag
  866.             bits 15-1 reserved (0)
  867.             bit 0: do not check for attached device during PnP POST
  868.                   boot device selection
  869.         DWORD    -> preferred resource allocation or -> END_TAG if none
  870.         WORD    PnP BIOS writable segment/selector
  871. Return: AX = status (see #F052)
  872. Note:    the large-model C declaration is
  873.       int (*entry)(int, int, unsigned long, unsigned long, unsigned long,
  874.         int, int, char *, unsigned int);
  875.  
  876. (Table F034)
  877. Call Plug-and-Play BIOS function 08h with:
  878.     STACK:    WORD    0008h (function "Get Primary Boot Devices")
  879.         WORD    type of primary boot device
  880.             0000h primary input
  881.             0001h primary output
  882.             0002h primary IPL
  883.         DWORD    -> DWORD buffer for Plug-and-Play 32-bit device ID
  884.         DWORD    -> DWORD buffer for device serial number
  885.         DWORD    -> DWORD buffer for logical device ID
  886.         DWORD    -> WORD buffer for physical unit number
  887.         DWORD    -> buffer for preferred resource allocation
  888.         WORD    PnP BIOS writable segment/selector
  889. Return: AX = status (see #F052)
  890. Note:    the large-model C declaration is
  891.       int (*entry)(int, int, unsigned long *, unsigned long *,
  892.         unsigned long *, unsigned int *, char *, unsigned int);
  893.  
  894. Format of Plug-and-Play Docking Station Information:
  895. Offset    Size    Description    (Table F035)
  896.  00h    DWORD    docking station location identifier (EISA device ID format)
  897.         FFFFFFFFh if unknown or no product identifier
  898.  04h    DWORD    serial number or 00000000h
  899.  08h    WORD    capabilities
  900.         bits 15-3 reserved (0)
  901.         bits 2-1: hot-pluggability
  902.             00 power-down required to dock/undock
  903.             01 must be in suspend mode ("warm" dock/undock)
  904.             10 system can be hot-docked
  905.             11 reserved
  906.         bit 0: docking station provides support for controlling
  907.               sequence of docking/undocking
  908.  
  909. (Table F036)
  910. Call Plug-and-Play BIOS function 09h with:
  911.     STACK:    WORD    0009h (function "Set Statically Allocated Resource
  912.               Information")
  913.         DWORD    -> block of statically-allocated resources as described
  914.               in the Plug-and-Play ISA Spec
  915.         WORD    PnP BIOS writable segment/selector
  916. Return: AX = status (see #F052)
  917. Notes:    the large-model C declaration is
  918.       int (*entry)(int, unsigned char *, unsigned int);
  919.     if the returned status is 008Dh, the Plug-and-Play BIOS supports
  920.       ESCD, and the caller should thus use functions 41h to 43h instead
  921.       of 09h and 0Ah
  922.  
  923. (Table F037)
  924. Call Plug-and-Play BIOS function 0Ah with:
  925.     STACK:    WORD    000Ah (function "Get Statically Allocated Resource
  926.               Information")
  927.         DWORD    -> buffer for statically-allocated resources as
  928.               described in the Plug-and-Play ISA Spec
  929.         WORD    PnP BIOS writable segment/selector
  930. Return: AX = status (see #F052)
  931. Notes:    the large-model C declaration is
  932.       int (*entry)(int, unsigned char *, unsigned int);
  933.     if the returned status is 008Dh, the Plug-and-Play BIOS supports
  934.       ESCD, and the caller should thus use functions 41h to 43h instead
  935.       of 09h and 0Ah
  936.  
  937. (Table F038)
  938. Call Plug-and-Play BIOS function 0Bh with:
  939.     STACK:    WORD    000Bh (function "Get APM ID Table")
  940.               Information")
  941.         DWORD    -> WORD buffer for size of data buffer
  942.         DWORD    -> buffer for storing APM ID table (see #F039)
  943.         WORD    PnP BIOS writable segment/selector
  944. Return: AX = status (see #F052)
  945. Desc:    copies the Advanced Power Management v1.1 device identifier table to
  946.       Plug-and-Play device identifier mappings
  947. Note:    the large-model C declaration is
  948.       int (*entry)(int, unsigned int *, unsigned char *, unsigned int);
  949. SeeAlso: INT 15/AX=5300h
  950.  
  951. Format of Plug-and-Play APM ID Table:
  952. Offset    Size    Description    (Table F039)
  953.  00h    DWORD    Plug-and-Play device identifier
  954.  04h    WORD    APM v1.1+ identifier
  955. SeeAlso: #F038
  956.  
  957. (Table F040)
  958. Call Plug-and-Play BIOS function 40h with:
  959.     STACK:    WORD    0040h (function "Get Plug-and-Play ISA Configuration
  960.               Structure")
  961.         DWORD    -> buffer for configuration structure (see #F041)
  962.         WORD    PnP BIOS writable segment/selector
  963. Return: AX = status (see #F052)
  964. Note:    the large-model C declaration is
  965.       int (*entry)(int, unsigned char *, unsigned int);
  966.  
  967. Format of Plug-and-Play ISA Configuration Structure:
  968. Offset    Size    Description    (Table F041)
  969.  00h    BYTE    structure revision level (01h)
  970.  01h    BYTE    total Card Select Numbers (CSNs) assigned
  971.  02h    WORD    ISA Read Data Port (see also PORT 0A79h)
  972.  04h    WORD    reserved (0)
  973. SeeAlso: #F040
  974.  
  975. (Table F042)
  976. Call Plug-and-Play BIOS function 41h with:
  977.     STACK:    WORD    0041h (function "Get Extended System Configuration
  978.               Information")
  979.         DWORD    -> WORD buffer for size of nonvolatile storage
  980.         DWORD    -> WORD buffer for size of ESCD allocated
  981.         DWORD    -> DWORD buffer for physical base address of NV storage
  982.               (if memory-mapped, else 00000000h)
  983.         WORD    PnP BIOS writable segment/selector
  984. Return: AX = status (see #F052)
  985. Note:    the large-model C declaration is
  986.       int (*entry)(int, unsigned int *, unsigned int *, unsigned long *,
  987.           unsigned int);
  988. SeeAlso: INT 1A/AX=B401h
  989.  
  990. (Table F043)
  991. Call Plug-and-Play BIOS function 42h with:
  992.     STACK:    WORD    0042h (function "Read Extended System Configuration
  993.               Data")
  994.         DWORD    -> buffer for storing ESCD
  995.         WORD    read/writable selector for ESCD if memory-mapped and
  996.               called in protected mode (ignored otherwise)
  997.         WORD    PnP BIOS writable segment/selector
  998. Return: AX = status (see #F052)
  999. Notes:    the large-model C declaration is
  1000.       int (*entry)(int, unsigned char *, unsigned int, unsigned int);
  1001.     if an ESCD selector is required, the caller must construct a 16-bit
  1002.       data segment selector with a limit of 64K
  1003.  
  1004. (Table F044)
  1005. Call Plug-and-Play BIOS function 43h with:
  1006.     STACK:    WORD    0043h (function "Write Extended System Configuration
  1007.               Data")
  1008.         DWORD    -> buffer containing ESCD
  1009.         WORD    read/writable selector for ESCD if memory-mapped and
  1010.               called in protected mode (ignored otherwise)
  1011.         WORD    PnP BIOS writable segment/selector
  1012. Return: AX = status (see #F052)
  1013. Notes:    the large-model C declaration is
  1014.       int (*entry)(int, unsigned char *, unsigned int, unsigned int);
  1015.     if an ESCD selector is required, the caller must construct a 16-bit
  1016.       data segment selector with a limit of 64K
  1017.  
  1018. (Table F045)
  1019. Call BIOS Boot Specification function 60h with:
  1020.     STACK:    WORD    0060h (function "Get Version and Installation Check")
  1021.         DWORD    -> WORD buffer for BIOS Boot Spec version number (BCD)
  1022. Return: AX = status (see #F052)
  1023.        0081h if BIOS Boot not available
  1024. Note:    the large-model C declaration is
  1025.       int (*entry)(int, int *) ;
  1026. SeeAlso: #F046,#F047,#F048,#F049
  1027.  
  1028. (Table F046)
  1029. Call BIOS Boot Specification function 61h with:
  1030.     STACK:    WORD    0061h (function "Get IPL Device Count")
  1031.         DWORD    -> WORD buffer for number of IPL devices in system
  1032.         DWORD    -> WORD buffer for max. number of IPL devices supported
  1033.         DWORD    -> WORD buffer for size of an IPL table entry
  1034. Return: AX = status (see #F052)
  1035. Note:    the large-model C declaration is
  1036.       int (*entry)(int, unsigned int *, unsigned int *, unsigned int *) ;
  1037. SeeAlso: #F045,#F047,#F048,#F049
  1038.  
  1039. (Table F047)
  1040. Call BIOS Boot Specification function 62h with:
  1041.     STACK:    WORD    0062h (function "Get Boot Priority and IPL Table")
  1042.         DWORD    -> buffer for copy of boot priority stored in NVRAM
  1043.         DWORD    -> buffer for IPL table
  1044. Return: AX = status (see #F052)
  1045. Notes:    the large-model C declaration is
  1046.       int (*entry)(int, unsigned char *, unsigned char *) ;
  1047.     the size of the boot priority buffer must be at least MaxIPL bytes
  1048.       (see #F046), of which the first CurrentIPL bytes are valid, with
  1049.       the lowest-valued byte indicating the device which should attempt
  1050.       booting first, the next lowest second, etc.
  1051.     the size of the IPL table buffer must be at least MaxIPL + IPLsize
  1052.       bytes (see #F046)
  1053. SeeAlso: #F045,#F046,#F048,#F049
  1054.  
  1055. (Table F048)
  1056. Call BIOS Boot Specification function 63h with:
  1057.     STACK:    WORD    0063h (function "Set Boot Priority")
  1058.         DWORD    -> buffer containing new boot priority list (see #F047)
  1059. Return: AX = status (see #F052)
  1060. Note:    the large-model C declaration is
  1061.       int (*entry)(int, unsigned char *) ;
  1062. SeeAlso: #F045,#F046,#F047,#F049
  1063.  
  1064. (Table F049)
  1065. Call BIOS Boot Specification function 64h with:
  1066.     STACK:    WORD    0064h (function "Get IPL Device from Last Boot")
  1067.         DWORD    -> WORD buffer for index in IPL table of boot device
  1068. Return: AX = status (see #F052)
  1069. Note:    the large-model C declaration is
  1070.       int (*entry)(int, unsigned int *) ;
  1071. SeeAlso: #F045,#F046,#F047,#F048,#F050
  1072.  
  1073. (Table F050)
  1074. Call BIOS Boot Specification function 65h with:
  1075.     STACK:    WORD    0065h (function "Get Boot First")
  1076.         DWORD    -> WORD buffer for index in IPL table of current
  1077.               first boot device
  1078. Return: AX = status (see #F052)
  1079. Notes:    the large-model C declaration is
  1080.       int (*entry)(int, unsigned int *) ;
  1081.     the boot-first device will attempt booting before the boot-priority
  1082.       list is considered
  1083. SeeAlso: #F045,#F046,#F047,#F048,#F051
  1084.  
  1085. (Table F051)
  1086. Call BIOS Boot Specification function 66h with:
  1087.     STACK:    WORD    0066h (function "Set Boot First")
  1088.         DWORD    -> WORD containing index in IPL table of new device
  1089.               from which to attempt booting first before
  1090.               considering the boot priority list
  1091. Return: AX = status (see #F052)
  1092. Note:    the large-model C declaration is
  1093.       int (*entry)(int, 
  1094. SeeAlso: #F045,#F046,#F047,#F048,#F050
  1095.  
  1096. (Table F052)
  1097. Values for Plug-and-Play function status code:
  1098.  0000h    successful
  1099.  0001h    boot device resource configuration not saved to nonvolatile memory
  1100.  0002h-007Eh reserved for future warnings
  1101.  0055h    unable to read/write Extended System Config Data from nonvolatile mem
  1102.  0056h    no valid Extended System Configuration Data in nonvolatile storage
  1103.  0059h    user's buffer was too small for Extended System Configuration Data
  1104.  007Fh    device could not be configured statically, but dynamic config succeeded
  1105.  0081h    unknown function
  1106.  0082h    unsupported function
  1107.  0083h    invalid device node number/handle
  1108.  0084h    bad parameter
  1109.  0085h    failure setting device node
  1110.  0086h    no pending events
  1111.  0087h    system not docked
  1112.  0088h    no ISA Plug-and-Play cards installed
  1113.  0089h    unable to determine docking station's capabilities
  1114.  008Ah    undocking sequence failed because system unit does not have a battery
  1115.  008Bh    resource conflict with a primary boot device
  1116.  008Ch    buffer provided by user was too small
  1117.  008Dh    must use ESCD support for specified device
  1118.  008Eh    message not supported
  1119.  008Fh    hardware error
  1120. SeeAlso: #0605
  1121.  
  1122. Format of Option ROM header:
  1123. Offset    Size    Description    (Table F053)
  1124.  00h    WORD    AA55h signature
  1125.  02h    BYTE    length of option ROM in 512-byte pages (should be multiple 4)
  1126.  03h  4 BYTEs    standard initialization entry point
  1127.         (called with ES:DI -> PnP Installation Structure)
  1128.  07h 19 BYTEs    reserved
  1129.  1Ah    WORD    offset to PnP Expansion Header
  1130.  
  1131. Format of Expansion Header:
  1132. Offset    Size    Description    (Table F054)
  1133.  00h  4 BYTEs    signature ("$PnP" for Plug-and-Play expansion header)
  1134.  04h    BYTE    structure version number
  1135.  05h    BYTE    length of entire header in paragraphs
  1136.  06h    WORD    offset to next header or 0000h
  1137.  08h    BYTE    reserved
  1138.  09h    BYTE    checksum (sum of all bytes in header, including this one,
  1139.           mod 256 should equal zero)
  1140. ---PnP Expansion Header---
  1141.  0Ah    DWORD    Plug-and-Play device identifier
  1142.  0Eh    WORD    offset of manufacturer ID string in Option ROM or 0000h
  1143.  10h    WORD    offset of product name string in Option ROM or 0000h
  1144.  12h  3 BYTEs    device type code (see #F056)
  1145.         byte 0: base type (general kind of device)
  1146.         byte 1: device subtype
  1147.         byte 2: device programming interface
  1148.  15h    BYTE    device indicator flags (see #F055)
  1149.  16h    WORD    Boot Connection Vector offset (real/protected mode) or 0000h
  1150.         (see #F059)
  1151.  18h    WORD    Disconnect Vector offset (real/protected mode) or 0000h
  1152.         far-called by system BIOS is boot attempt failed
  1153.  1Ah    WORD    bootstrap entry point (real/protected mode) or 0000h
  1154.  1Ch    WORD    reserved (0)
  1155.  1Eh    WORD    Static Resource Information offset (real/prot mode) or 0000h
  1156.         should be used only by non-PnP devices to make them PnP-aware
  1157.           (see #F060)
  1158.  
  1159. Bitfields for Plug-and-Play device indicator flags:
  1160. Bit(s)    Description    (Table F055)
  1161.  7    supports Device Driver Initialization model
  1162.  6    may be shadowed in RAM
  1163.  5    may be read cached
  1164.  4    only required if device used for booting
  1165.  3    reserved (0)
  1166.  2    device is Initial Program Load (IPL, i.e. boot) device
  1167.  1    device is Input device
  1168.  0    device is Display device
  1169. SeeAlso: #F056
  1170.  
  1171. (Table F056)
  1172. Values for Plug-and-Play device type code:
  1173. Type    Subtype        Description
  1174.  00h    ---    reserved
  1175.  01h    ---    mass storage
  1176.     00h      SCSI controller
  1177.     01h      IDE controller
  1178.     02h      floppy controller (NEC 765-compatible)
  1179.     03h      IPI controller
  1180.     04h      RAID controller
  1181.     80h      other
  1182.  02h    ---    network interface controller
  1183.     00h      Ethernet
  1184.     01h      Token Ring
  1185.     02h      FDDI
  1186.     03h      ATM
  1187.     80h      other
  1188.  03h    ---    display controller
  1189.     00h      VGA
  1190.     01h      SuperVGA
  1191.     02h      XGA
  1192.     80h      other
  1193.  04h    ---    multi-media controller
  1194.     00h      video
  1195.     01h      audio
  1196.     80h      other
  1197.  05h    ---    memory
  1198.     00h      RAM
  1199.     01h      Flash memory
  1200.     80h      other
  1201.  06h    ---    bridge controller
  1202.     00h      host processor bridge
  1203.     01h      ISA bridge
  1204.     02h      EISA bridge
  1205.     03h      MicroChannel bridge
  1206.     04h      PCI bridge
  1207.     05h      PCMCIA bridge
  1208.     06h      NuBus bridge
  1209.     07h      CardBus bridge
  1210.     80h      other
  1211.  07h    ---    communications device
  1212.     00h      XT-compatible RS-232
  1213.     01h      AT-compatible parallel port
  1214.     80h      other
  1215.  08h    ---    system peripherals
  1216.     00h      8259-compatible Programmable Interrupt Controller
  1217.     01h      8237-compatible DMA Controller
  1218.     02h      8254-compatible system timer
  1219.     03h      real-time clock
  1220.     80h      other
  1221.  09h    ---    input device
  1222.     00h      keyboard controller
  1223.     01h      digitizer/pen
  1224.     02h      mouse
  1225.     80h      other
  1226.  0Ah    ---    docking station
  1227.     00h      generic docking station
  1228.     80h      other
  1229.  0Bh    ---    CPU
  1230.     00h      386-based
  1231.     01h      486-based
  1232.     02h      Pentium-based
  1233.     10h      DEC Alpha
  1234.     40h      coprocessor
  1235.  0Ch    ---    Serial Bus controller
  1236.     00h      Firewire (IEEE 1394)
  1237.     01h      ACCESS.bus
  1238.     02h      SSA
  1239. SeeAlso: #F055,#F057
  1240.  
  1241. (Table F057)
  1242. Values for Plug-and-Play generic EISA device ID:
  1243.  PNP0xxx    system devices
  1244.  PNP00xx      interrupt controller
  1245.  PNP01xx      timer
  1246.  PNP02xx      DMA controller
  1247.  PNP03xx      keyboard
  1248.  PNP04xx      parallel port
  1249.  PNP05xx      serial port
  1250.  PNP06xx      disk controller
  1251.  PNP0700      floppy controller
  1252.  PNP0800      PC speaker
  1253.  PNP09xx      display adapter
  1254.  PNP0Axx      periperal bus
  1255.  PNP0B00      real-time clock
  1256.  PNP0Cxx      BIOS/system board
  1257.  PNP0Exx      PCMCIA controller chipset
  1258.  PNP0Fxx      mouse
  1259.  PNP8xxx    network adapter
  1260.  PNP9xxx    modem
  1261.  PNPAxxx    SCSI controller/proprietary CD-ROM controller
  1262.  PNPBxxx    sound/video/multimedia
  1263. SeeAlso: #F056,#F058
  1264.  
  1265. (Table F058)
  1266. Values for data tags:
  1267.  22h    IRQ descriptor, no flags
  1268.  23h    IRQ descriptor, with flags
  1269.  2Ah    DMA descriptor
  1270.  30h    Dependent Function start
  1271.  31h    Dependent Function start, with priority byte
  1272.  38h    Dependent Function end
  1273.  47h    I/O port descriptor
  1274.  4Bh    fixed-location I/O port descriptor
  1275.  78h    "END_TAG" end of resource descriptors
  1276. SeeAlso: #F057
  1277.  
  1278. (Table F059)
  1279. Values Boot Connection Vector is called with:
  1280.     AX = which vectors to hook
  1281.        bit 2: connect as IPL (INT 13)
  1282.        bit 1: connect as primary video (INT 10)
  1283.        bit 0: connect as primary input (INT 09)
  1284.     ES:DI -> system BIOS PnP Installation Check Structure
  1285.     BX = Card Select Number for this card (ISA bus only)
  1286.     DX = read data port (ISA only) or FFFFh
  1287. SeeAlso: #F060
  1288.  
  1289. (Table F060)
  1290. Values Static Resource Information vector is called with:
  1291.     ES:DI -> buffer for device's static resource config info (at least 1024
  1292.           bytes)
  1293. SeeAlso: #F059
  1294.  
  1295. Format of Plug-and-Play System Device Node:
  1296. Offset    Size    Description    (Table F061)
  1297.  00h    WORD    size of device node in bytes
  1298.  02h    BYTE    device node number/handle
  1299.  03h    DWORD    EISA product identifier
  1300.  07h  3 BYTEs    device type code
  1301.  0Ah    WORD    attribute flags
  1302.         bits 15-9 reserved (0)
  1303.         bits 8-7: configurability
  1304.             00 can only be statically configured for next boot
  1305.             01 can be dynamically configured at runtime
  1306.             10 reserved
  1307.             11 can only be dynamically configured
  1308.         bit 6: removable device
  1309.         bit 5: docking station
  1310.         bit 4: capable of being primary IPL (boot) device
  1311.         bit 3: capable of being primary input device
  1312.         bit 2: capable of being primary output device
  1313.         bit 1: device is not configurable
  1314.         bit 0: device can not be disabled
  1315.  0Ch    var    allocated resource configuration descriptors
  1316.     var    possible resource configuration descriptors
  1317.     var    compatible device identifiers
  1318. ----------@xxxxxxxx--------------------------
  1319. CALL xxxxh:xxxxh - BIOS Boot Specification (BBS)
  1320. InstallCheck:    perform Plug-and-Play installation check, then call PnP
  1321.       function 60h
  1322. SeeAlso: @xxxxh:xxxxh"Plug-and-Play"
  1323. ----------@xxxxxxxx--------------------------
  1324. CALL xxxxh:xxxxh - QEMM Programming Interface (QPI)
  1325. InstallCheck:    see INT 67/AH=3Fh
  1326. SeeAlso: INT 67/AH=3Fh
  1327. ----------@xxxxxxxx--------------------------
  1328. CALL xxxxh:xxxxh - QEXT.SYS Private API
  1329. InstallCheck:    see INT 15/AX=11DEh
  1330. SeeAlso: INT 15/AX=11DEh
  1331. ----------@xxxxxxxx--------------------------
  1332. CALL xxxxh:xxxxh - Quarterdeck VIDRAM
  1333. InstallCheck:    see INT 2F/AX=D201h/BX=5649h
  1334. SeeAlso: INT 2F/AX=D201h/BX=5649h
  1335. ----------@xxxxxxxx--------------------------
  1336. CALL xxxxh:xxxxh - SoundBlaster Speech Driver
  1337. InstallCheck:    see INT 2F/AX=FBFBh
  1338. SeeAlso: INT 2F/AX=FBFBh
  1339. ----------@xxxxxxxx--------------------------
  1340. CALL xxxxh:xxxxh - Stacker
  1341. InstallCheck:    see INT 2F/AX=4A12h/CX=5354h
  1342. SeeAlso: INT 2F/AX=4A12h/CX=5354h
  1343. ----------@xxxxxxxx--------------------------
  1344. CALL xxxxh:xxxxh - VESA Audio Interface Driver
  1345. InstallCheck:    see INT 10/AX=4F13h/BX=0002h
  1346. SeeAlso: INT 10/AX=4F13h/BX=0002h
  1347. ----------@xxxxxxxx--------------------------
  1348. CALL xxxxh:xxxxh - Virtual Control Program Interface (VCPI) - Protected-Mode
  1349. InstallCheck:    see INT 67/AX=DE01h
  1350. SeeAlso: INT 67/AX=DE01h
  1351. ----------@xxxxxxxx--------------------------
  1352. CALL xxxxh:xxxxh - WEB v4.02 - MODULE APIs
  1353. InstallCheck:    see INT 2F/AH=EEh
  1354. SeeAlso: INT 2F/AH=EEh
  1355. ---------------------------------------------
  1356.  
  1357.  
  1358. ----------@xxxxxxxx--------------------------
  1359. CALL xxxxh:xxxxh - 
  1360. InstallCheck:    
  1361. SeeAlso: 
  1362. ---------------------------------------------
  1363.  
  1364. --------!---Admin----------------------------
  1365. Highest Table Number = F061
  1366. --------!---FILELIST-------------------------
  1367. Please redistribute all of the files comprising the interrupt list (listed at
  1368. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  1369. quartet of archives named INTER49A through INTER49D (preferably the original
  1370. authenticated PKZIP archives), and the utility programs in a two additional
  1371. archives called INTER49E.ZIP and INTER49F.ZIP
  1372.  
  1373. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  1374. --------!---CONTACT_INFO---------------------
  1375. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  1376. UUCP: {uunet,harvard}!pobox.com!ralf
  1377. FIDO: Ralf Brown 1:129/26.1
  1378.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  1379.     unless you address it to me)
  1380. CIS:  >INTERNET:ralf@pobox.com
  1381.